using System;
using System.Collections.Generic;
using MammothMicro.SilverSocket.Protocol.System;


namespace MammothMicro.SilverSocket.Shared
{
    public interface IProtocolService
    {
        event EventHandler<MessageReceivedEventArgs> MessageReceived;

        bool AcceptsClients{get; set; }

        string ClientVersion{get; set; }
        
        void PushMessageToClient(string sessionId, IDuplexCbMessage message);

        void PushMessageToAllClients(IDuplexCbMessage message);

        void Start();

        void Stop();

        void UpdateKnownMessages(List<Type> knownTypes);
        
    }
}